package com.nchu.controller;

import com.nchu.VO.UserVO;
import com.nchu.common.util.PageResult;
import com.nchu.common.util.R;
import com.nchu.entity.User;
import com.nchu.service.impl.UserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;

import java.util.Arrays;
import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author yaojie
 * @since 2025-01-09
 */
@RestController
@CrossOrigin //解决跨域
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserServiceImpl userService;
    @GetMapping("/list")
    public R list(){
        List<User> userList = userService.list();
        return R.ok().data("userList",userList);
    }
    @GetMapping("/findByPage/{page}/{pageSize}")
    public R findByPage(@PathVariable("page") Integer page,
                        @PathVariable("pageSize") Integer pageSize) {
        PageResult<User> pr = userService.findByPage(page,pageSize);
        //返回结果
        return R.ok().data("pr",pr);
    }
    @PostMapping("/search/{page}/{pageSize}")
    public R search(@PathVariable("page") Integer page,
                    @PathVariable("pageSize") Integer pageSize,
                    @RequestBody(required = false) UserVO vo){
        PageResult<User> pr = userService.search(page,pageSize,vo);
        return R.ok().data("pr",pr);
    }
    //添加学生信息
    @PostMapping("/addUser")
    public R addStudent(@RequestBody User user){
        boolean f = userService.addUser(user);
        return f ? R.ok().message("用户信息添加成功!") : R.error().message("用户信息添加失败!");
    }
    //更新学生信息
    @PostMapping("/updateUser")
    public R updateStudent(@RequestBody User user){
        boolean f = userService.updateById(user);
        return f ? R.ok().message("修改用户信息成功!") : R.error().message("修改用户信息失败!");
    }
    //删除用户信息这里的id可以填多个id如/1,3,4
    @PostMapping("/deleteUser/{id}")
    public R delete(@PathVariable("id") String id){
        String[] split = id.split(",");
        List<String> userIds = Arrays.asList(split);
        return userService.removeByIds(userIds) ? R.ok().message("删除用户信息成功!") : R.error().message("删除学生信息失败!");
    }
}
